package com.link.base.base.product.service;

import com.link.base.base.common.model.Attachment;
import com.link.base.base.orgnization.model.Orgnization;
import com.link.base.base.product.model.PortalProductCase;
import com.link.core.basic.service.BasicService;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 产品案例服务
 *
 * @author 谭琛琨
 * @date 2019/12/13 10:31
 */
public interface PortalProductCaseService extends BasicService<PortalProductCase> {
    
    /**
     * 上传图片
     *
     * @author 路江
     * @date 2019/12/13 10:32
     * @param entity  案例对象
     * @param imagefileList 上传图片对象
     */
    public void uploadImg(PortalProductCase entity, List<MultipartFile> imagefileList) throws Exception;

    /**
     * 查询案例下的案例图片列表
     *
     * @author crm4
     * @date 2019/12/13 10:33
     * @param entity  案例对象， 根据案例id
     */
    public List<Attachment> queryCaseImgByCaseId(PortalProductCase entity) throws Exception;

    /**
     * 更新主图
     *
     * @author crm4
     * @date 2019/12/13 10:34
     * @param productCase  案例对象
     */
    public void imageUpdate(PortalProductCase productCase) throws Exception;

     /**
      * 查询产品列表以及案例正文
      *
      * @author 路江
      * @date 2019/12/13 10:35
      * @param portalProductCase  案例对象
      */
    PortalProductCase getportalProductCase(PortalProductCase portalProductCase) throws Exception;

    /**
     * 删除案例中间表记录
     *
     * @author 路江
     * @date 2019/12/13 10:47
     * @param entity  案例对象
     */
    void deleteByProductCase(PortalProductCase entity) throws Exception;

    /**
     * 新增案例中间表
     *
     * @author 路江
     * @date 2019/12/13 10:48
     * @param entity  案例对象
     */

    void insertProductCase(PortalProductCase entity) throws Exception;

    /**
     * 根据产品id查询与之相关联的案例集合
     *
     * @author 单建平
     * @date 2019/12/13 10:48
     * @param record  案例对象
     */
    List<PortalProductCase> queryByProductId(PortalProductCase record) throws Exception;

    /**
     * 获取知识库的浏览量、点赞量、收藏量、当前用户是否点赞、是否收藏
     *
     * @author 欧阳振强
     * @date 2019/12/13 10:49
     * @param record  案例对象
     * @param userId  用户Id
     */
    void setStatisticsData(PortalProductCase record, Long userId) throws Exception;

    /**
     * 根据案例id查询案例详情（分享）
     *
     * @author 谭琛琨
     * @date 2019/12/13 10:51
     * @param record  案例对象
     */
    PortalProductCase queryByCasebaseId(PortalProductCase record) throws Exception;

    /**
     * 根据案例id查询案例详情图片（分享）
     *
     * @author 谭琛琨
     * @date 2019/12/13 10:51
     * @param record  案例对象
     * @param org  组织对象
     */
    PortalProductCase queryCasebaseImg(PortalProductCase record, Orgnization org) throws Exception;

}
